Memory systems may encode and decode data with parity bits that provide redundancy and error correction capability for the data when read from the memory. Encoding schemes to encode the data may be based on the presumption that errors in the data bits when reading the data are evenly distributed across the memory. However, in actuality, the errors not usually evenly distributed, which may be due to error-prone or unreliable storage locations not being evenly distributed across the memory. Incorporating information about the unreliable storage locations into encoding and decoding schemes in order to improve decoding performance may be desirable.